The present disclosure relates generally to computer program error management and, more particularly, to methods, systems, computer program products for computer program error management in a cloud computing environment.
Cloud computing is a computing paradigm where shared resources, such as processor(s), software, and information, are provided to computers and other devices on demand typically over a network, such as the Internet. In a cloud computing environment, details of the computing infrastructure, e.g., processing power, data storage, bandwidth, and/or other resources are abstracted from the user. The user does not need to have any expertise in or control over such computing infrastructure resources. Cloud computing typically involves the provision of dynamically scalable and/or virtualized resources over the Internet. A user may access and use such resources through the use of a Web browser. A typical cloud computing provider may provide an online application that can be accessed over the Internet using a browser. The cloud computing provider, however, maintains the software for the application and some or all of the data associated with the application on servers in the cloud, i.e., servers that are maintained by the cloud computing provider rather than the users of the application.
FIG. 1 illustrates a conventional cloud service model that includes Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Infrastructure as a Service, delivers computer infrastructure—typically a platform virtualization environment—as a service. Rather than purchasing servers, software, data-center space or network equipment, clients instead buy those resources as a fully outsourced service. Suppliers typically bill such services on a utility computing basis and the amount of resources consumed. Platform as a Service delivers a computing platform as a service. It provides an environment for the deployment of applications without the need for a client to buy and manage the underlying hardware and software layers. Software as a Service delivers software services over the Internet, which reduces or eliminates the need for the client to install and run an application on its own computers, which may simplify maintenance and support.
When a computer program encounters an error, debug systems may be used to analyze the state of the computer program at the time the error occurred to determine the cause of the error and if maintenance work needs to be performed on the computer program. These debug systems may incorporate tools for analyzing function and/or stack back traces and associate the function, parameter, variable, constant and/or other names from the original source code with their values at the time the error occurred. The advent of cloud computing, however, introduces new considerations when debugging a software application running in the cloud. In contrast to a conventional computing environment where a client has control over the software applications and data it uses, in a cloud computing environment, this control is turned over to a cloud computing service provider. Details of the software application and associated data may then be revealed to the cloud computing service provider and/or a third party technical support organization that is involved in analyzing the cause of a software error. The details of the algorithms used in the software application and values for some or all of the data used in the application may be considered proprietary to the client or, possibly, Sensitive Personal Information (SPI) of the client's customers. For example, the client may be a bank and the software application may be a banking application that processes private financial data for the bank's customers. The client may be a hospital and the software application may be an application for processing patient medial records that by law are to be kept confidential. In some cases, laws may be in place that prohibit the release of information across some geographic boundary, such as a state boundary or country boundary.
Sensitive Personal Information may be leaked or exposed in various ways. As described above, debugging tools may reveal the values of program data and/or reveal algorithms used in the software application to the cloud computing service provider and/or a third party technical support organization.
The need to maintain confidentiality for program algorithms and/or data may inhibit the provision of certain types of software applications as cloud services. Moreover, the confidentiality of some types of software applications and data may be protected by law or other type of regulation that effectively prohibit the provision of such software applications and/or data as cloud services unless appropriate confidentiality safeguards are in place.